拒绝服务攻击会导致哪些资源被消耗
拒绝服务攻击会导致以下资源被消耗:
消耗带宽资源:攻击者直接或间接地向受害者的网络发送大量的无用数据分组,从而消耗掉受害者网络的所有入口带宽。这些分组可以是任何内容,通常使用的是ICMP回应分组。为了使此类攻击取得更好的效果,攻击者可以使用多台机器向同一个受害者发送大量的分组。
消耗网络连接资源:这里的网络连接资源是指逻辑资源。我们知道,TCP是面向连接的传输层协议,在进行数据通信之前需要通过三次握手的方式建立TCP连接。在一般的TCP实现中,连接资源是有限的,即当系统中处于打开(Open)状态的TCP连接数量超过了系统设计的阈值时,该系统就无法接收后面到达的连接请求,从而造成连接拥塞。在这类攻击中,攻击者试图通过非正常地大量消耗连接资源来阻止合法用户的访问请求,以达到拒绝服务攻击的目的。
其他资源的消耗:也有许多攻击者会试图消耗受害者的其他资源,比如CPU处理能力和内存资源等。我们知道,任何系统在正常运行时都需要在程序的数据结构中临时存储一些信息;攻击者可以通过运行特定的恶意程序,持续消耗直至耗尽服务器的存储空间,从而无法向其他正常的用户请求提供服务。同样,攻击者也可以通过生成大量需要消耗CPU资源的各类进程致使服务器的计算能力不堪重负,以致无法为正常用户请求提供服务。
消耗用户相互之间的资源:有一类攻击是通过使两个受害主机不断互相发送数据分组来实现的。CERT描述了这类攻击的一个例子,在这个攻击中,攻击者利用伪造的UDP分组使受害者网络中两台主机的回应服务(Echo Service)建立连接,两台配置了回应服务的主机一旦进入工作模式,如果没有外力强制其停止下来,将一直不断地互相发送数据分组,直至耗尽它们之间的网络带宽。
防御拒绝服务攻击的方法有以下这些:
分组过滤:为了避免被攻击,可以对特定的流量进行过滤(丢弃),例如,用防火墙过滤掉所有来自某些主机的报文,为了防止Smurf攻击而设置过滤器过滤掉所有ICMP协议的ECHO报文。这种基于特定攻击主机或者内容的过滤方法只限于已经定义的固定的过滤器,不适合动态变化的攻击模式。还有一种“输入诊断”方案,由受害者提供攻击特征,沿途的因特网服务提供商(Internet Service Provider,ISP)配合将攻击分组过滤掉,但是这种方案需要各个ISP的网络管理员人工配合,工作强度高、时间耗费大,因此较难实施,但效果明显。
源端控制通:常参与DoS攻击的分组使用的源IP地址都是假冒的,因此如果能够防止IP地址假冒,就能够防止此类DoS攻击。通过某种形式的源端过滤可以减少或消除假冒IP地址的现象,从而防范DoS攻击。例如,路由器检查来自与其直接相连的网络分组的源IP地址,如果源IP地址非法(与该网络不匹配)则丢弃该分组。电信服务提供商利用自身的优势加强假冒地址的控制,可大大降低DDoS攻击的影响。现在越来越多的路由器支持源端过滤。但是,源端过滤并不能彻底消除IP地址假冒。例如,一个ISP的客户计算机仍然能够假冒成该ISP网络内成百上千台计算机中的一台。
追溯:追溯发起攻击的源端的方法很多,这些方法假定存在源地址假冒,它试图在攻击的源处抑制攻击,并识别恶意的攻击源。它在IP地址假冒的情况下也可以工作,是日后采取必要的法律手段防止将来攻击的必要一步。但是追溯过程中并不能实时控制攻击的危害,当攻击很分散时也不能做到有效追溯。
路由器动态检测和控制:这种方法的基本原理是在路由器上动态检测和控制DoS攻击引起的拥塞,其主要依据是DoS攻击分组虽然可能来源于多个流,但这些流肯定有某种共同特征,比如有共同的目的地址或源地址(或地址前缀),或者都是TCP SYN类型的报文。这些流肯定在某些路由器的某些输出链路上聚集起来并造成大量的分组丢失。这些有共同特征的流可以称为流聚集(aggregate)。其主要设想是流聚集所通过的路由器有可能通过分析分组丢失的历史辨识出这种流聚集。如果一个路由器辨识出了这些高带宽的流聚集,它就可以通知送来这些流聚集的上游路由器限制其发送速率。这种由发生拥塞的路由器发起的回推(pushback)信号可能一直递归地传播到源端。这种机制从直观上不难理解,如果能够实际使用,则对于解决DoS攻击问题有很好的效果。但是这种机制在实际的网络中能否实用面临着检测标准、公平性机制、高效实现及运营管理等很多未解决的问题。
前端代理:我们可为静态资源准备多个站点做冗余备份,当Service Worker加载资源出错时,可不返回错误给上层页面,而是继续从备用站点加载,直到获得正确结果才返回。这样,只要有一个备用站点可用,资源就不会加载失败。
离线访问:Service Worker 的设计初衷就是为了增强网页的离线化体验,因此一旦安装即可在后台长期运行,即使服务器关机、浏览器重启,它也不会失效。
免费节点:使用冗余站点虽能提升稳定性,但攻击者仍可对备用站点发起攻击,尤其是恶意消耗流量费用的攻击,导致成本大幅上升。为此,我们还可使用一种更极端的方案使用免费 CDN 作为备用站点,例如 jsdelivr.net、unpkg.com、IPFS Gateway 等等,图片则可上传到各大网站的相册。
接口防御:对于纯静态资源的站点,我们可将所有资源甚至包含 HTML 文件都通过免费 CDN 加速,从而大幅降低成本、增加稳定性。